package org.whatisjava.action;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.ValueStack;

/**
 * 
 * @author Wangpeihu
 * @team [Never give up]
 * @since JDK1.6(建议)
 * @date 2010-1-27
 */
public class TestGenericAction extends BaseAction {

    private static final long serialVersionUID = 1L;
    private Map<String, String> testMap;

    public Map<String, String> getTestMap() {
        return this.testMap;
    }

    public void setTestMap(Map<String, String> testMap) {
        this.testMap = testMap;
    }

    private String name = "王培虎";

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String youku = "做实验";

    public String getYouku() {
        return this.youku;
    }

    public void setYouku(String youku) {
        this.youku = youku;
    }

    public String execute() {

        ActionContext ctx = ActionContext.getContext();
        ValueStack stack = ctx.getValueStack();

        // 将TestGenericAction里面的name属性设置成我想要的。 前面是OGNL,后面是值
        // 设置ValueStack Root 里面对象
        stack.setValue("name", "看看");

        // 加了 ＃从ValueStack Content里面取
        Object object1 = stack.findValue("name");
        System.out.println(object1);

        // 没加 从当前的ValueStack的root对象 的第一个对象里面取有该属性的对象，
        Object object2 = stack.findValue("#request");
        System.out.println(object2);

        // 往该ValueStack 的root对象里面放一个对象，这个对象在栈顶
        stack.push(new Date());

        // 让他出栈
        // stack.pop();

        // 往该ValueStack相关联 的Content里面放
        ctx.put("date", new Date());

        /*********************************************************************/

        testMap = new HashMap<String, String>();
        testMap.put("h", "helloworl");
        testMap.put("b", "book");
        testMap.put("x", "xwork");
        testMap.put("c", "cookbook");
        /*********************************************************************/
        ctx.put("tts", "The public ");
        return "success";

        /*********************************************************************/

    }
}
